package com.yunxi.service.localService.finance;

import com.yunxi.core.service.IServicePlus;
import com.yunxi.core.web.ApiResult;
import com.yunxi.core.web.LoginInfo;
import com.yunxi.finance.pojo.FinanceInstitutionVO;
import com.yunxi.finance.pojo.FinanceProductCalculateVO;
import com.yunxi.finance.pojo.FinanceProductVO;
import com.yunxi.model.finance.FinanceProduct;
import java.util.List;

/**
 * <p>
 * 金融产品维护 服务类
 * </p>
 *
 * @author XUQI
 * @since 2019-12-02
 */
public interface FinanceProductService extends IServicePlus<FinanceProduct> {

    /**
     * 金融产品保存方法
     *
     * @param financeProductVO 金融产品VO
     */
    ApiResult saveOrUpdate(FinanceProductVO financeProductVO);

    /**
     * 查询金融机构下拉框
     *
     * @return List<FinanceInstitutionVO>
     */
    List<FinanceInstitutionVO> findFinanceInstitutionDropDown();

    /**
     * 根据方案类型查询金融产品
     *
     * @param planType 方案类型
     * @return List<FinanceProductVO>
     */
    List<FinanceProductVO> productListByPlanType(String planType, LoginInfo info);


    /**
     * 金融产品结果计算
     *
     * @param calculateVO 计算参数
     * @return ApiResult
     */
    ApiResult calculate(FinanceProductCalculateVO calculateVO);


    /**
     * 查询配置/选装包价格
     * @param priceType 价格类型（ZVAR：选装包价格-零售指导价  ZPRR：零售价格 – 基本车型）
     * @param codes 15位码/选装包编码
     * @return ApiResult
     */
    ApiResult queryPrice(String priceType, List<String> codes);

}
